home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / CIncludes / TextEncodingPlugin.h < prev    next >
C/C++ Source or Header  |  1996-05-01  |  4KB  |  116 lines

  1. /*
  2.      File:        TextEncodingPlugin.h
  3.  
  4.      Contains:    Required interface for Text Encoding Converter-Plugins
  5.  
  6.      Version:    Technology:    
  7.                  Release:    Universal Interfaces 3.0d3 on Copland DR1
  8.  
  9.      Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10.  
  11.      Bugs?:        If you find a problem with this file, send the file and version
  12.                  information (from above) and the problem description to:
  13.  
  14.                      Internet:    apple.bugs@applelink.apple.com
  15.                      AppleLink:    APPLE.BUGS
  16.  
  17. */
  18. #ifndef __TEXTENCODINGPLUGIN__
  19. #define __TEXTENCODINGPLUGIN__
  20.  
  21. #ifndef __TYPES__
  22. #include <Types.h>
  23. #endif
  24. #ifndef __NAMEREGISTRY__
  25. #include <NameRegistry.h>
  26. #endif
  27. #ifndef __TEXTENCODINGCONVERTER__
  28. #include <TextEncodingConverter.h>
  29. #endif
  30.  
  31. #ifdef __cplusplus
  32. extern "C" {
  33. #endif
  34.  
  35. #if PRAGMA_IMPORT_SUPPORTED
  36. #pragma import on
  37. #endif
  38.  
  39. #if PRAGMA_ALIGN_SUPPORTED
  40. #pragma options align=mac68k
  41. #endif
  42.  
  43. /*
  44. ####################################################################################
  45.         Constructor/Destructor Messages
  46. ####################################################################################
  47. */
  48. typedef OSStatus (*TextEncodingPluginInitPtr)(void );
  49. /* normal termination*/
  50. typedef OSStatus (*TextEncodingPluginFreePtr)(void );
  51. /* error condition termination*/
  52. typedef OSStatus (*TextEncodingPluginEjectPtr)(void );
  53. /*
  54. ####################################################################################
  55.         Control Messages
  56. ####################################################################################
  57. */
  58. typedef OSStatus (*TextEncodingPluginStartIOPtr)(void );
  59. typedef OSStatus (*TextEncodingPluginHaltIOPtr)(void );
  60. /*
  61. ####################################################################################
  62.         Functional Messages
  63. ####################################################################################
  64. */
  65. typedef OSStatus (*TextEncodingPluginCountAvailableTextEncodingsPtr)(ItemCount *numberOfMappings);
  66. typedef OSStatus (*TextEncodingPluginGetAvailableTextEncodingsPtr)(TextEncoding *availableEncodings, ItemCount maxAvailableEncodings, ItemCount *actualAvailableEncodings);
  67. typedef OSStatus (*TextEncodingPluginNewEncodingConverterPtr)(EncodingConverterRef *newEncodingConverter, TextEncoding inputEncoding, TextEncoding outputEncoding);
  68. typedef OSStatus (*TextEncodingPluginDisposeEncodingConverterPtr)(EncodingConverterRef *newEncodingConverter);
  69. typedef OSStatus (*TextEncodingPluginConvertTextEncodingPtr)(EncodingConverterRef *encodingConverter, Boolean clearContext, BytePtr *inputText, ByteCount *inputLength, BytePtr outputBuffer, ByteCount outputBufferSize, ByteCount *actualOutputLength);
  70. typedef OSStatus (*TextEncodingPluginExamineTextEncodingPtr)(EncodingConverterRef *newEncodingConverter);
  71. /*
  72. ####################################################################################
  73.         Dispatch Table Definition
  74. ####################################################################################
  75. */
  76.  
  77. enum {
  78.     kTextEncodingPluginDispatchTableVersion1 = 0x0001,
  79.     kTextEncodingPluginDispatchTableCurrentVersion = kTextEncodingPluginDispatchTableVersion1
  80. };
  81.  
  82. struct TextEncodingPluginDispatchTable {
  83.  
  84.     short                             version;
  85.     TextEncodingPluginInitPtr         PlugInInit;
  86.     TextEncodingPluginFreePtr         PlugInFree;
  87.     TextEncodingPluginEjectPtr         PlugInEject;
  88.  
  89.     TextEncodingPluginStartIOPtr     PlugInStartIO;
  90.     TextEncodingPluginHaltIOPtr     PlugInHaltIO;
  91.  
  92.     TextEncodingPluginCountAvailableTextEncodingsPtr  PlugInCountAvailableTextEncodings;
  93.     TextEncodingPluginGetAvailableTextEncodingsPtr  PlugInGetAvailableTextEncodings;
  94.     TextEncodingPluginNewEncodingConverterPtr  PlugInNewEncodingConverter;
  95.     TextEncodingPluginDisposeEncodingConverterPtr  PlugInDisposeEncodingConverter;
  96.     TextEncodingPluginConvertTextEncodingPtr  PlugInConvertTextEncoding;
  97.     TextEncodingPluginExamineTextEncodingPtr  PlugInExamineTextEncoding;
  98. };
  99. typedef struct TextEncodingPluginDispatchTable TextEncodingPluginDispatchTable;
  100.  
  101.  
  102. #if PRAGMA_ALIGN_SUPPORTED
  103. #pragma options align=reset
  104. #endif
  105.  
  106. #if PRAGMA_IMPORT_SUPPORTED
  107. #pragma import off
  108. #endif
  109.  
  110. #ifdef __cplusplus
  111. }
  112. #endif
  113.  
  114. #endif /* __TEXTENCODINGPLUGIN__ */
  115.  
  116.